gl: specify attribute locations for vUv and aPosition
authorChristian Hergert <chergert@redhat.com>
Fri, 4 Dec 2020 21:33:34 +0000 (13:33 -0800)
committerChristian Hergert <chergert@redhat.com>
Fri, 4 Dec 2020 21:33:34 +0000 (13:33 -0800)
These positions are not guaranteed to be in a specific order when linked
into the final GPU program. They need to be specified so that our code
in gskglrenderer.c can use known positions for them to match up with
our GskQuadVertex.

This fixes the GL renderer on macOS's OpenGL shader compiler.

Fixes #3420

gsk/gl/gskglshaderbuilder.c

index d3b2a8351c5235821cf2a5a1b881dff60b88c685..1a4ddc301b93ce7151fb0289784cbd1fd85111d4 100644 (file)
@@ -229,6 +229,8 @@ gsk_gl_shader_builder_create_program (GskGLShaderBuilder  *self,
   program_id = glCreateProgram ();
   glAttachShader (program_id, vertex_id);
   glAttachShader (program_id, fragment_id);
+  glBindAttribLocation (program_id, 0, "aPosition");
+  glBindAttribLocation (program_id, 1, "vUv");
   glLinkProgram (program_id);
 
   glGetProgramiv (program_id, GL_LINK_STATUS, &status);